/**
 * 数据迁移类型定义
 */

import { StoredDocument } from '../indexedDB/types'

/**
 * 迁移摘要
 */
export interface MigrationSummary {
  documentsCount: number          // 迁移的文档数量
  configCount: number              // 迁移的配置数量
  success: boolean                 // 是否成功
  migratedAt: string              // 迁移时间
  errors?: string[]               // 错误信息
}

/**
 * 导出数据格式
 */
export interface ExportData {
  documents: StoredDocument[]     // 文档列表
  config: Record<string, any>    // 配置数据
  exportedAt?: string             // 导出时间
  version?: string                // 数据版本
}

/**
 * v1.0 LocalStorage存储格式
 * StoredContentEnvelope是v1.0的存储格式
 */
export interface StoredContentEnvelope {
  id: string
  type: string
  version: number
  payload: any                    // 完整的Content对象
  metadata: {
    savedAt: string
    savedBy: string
  }
}

/**
 * 迁移状态
 */
export enum MigrationStatus {
  NOT_STARTED = 'not_started',    // 未开始
  IN_PROGRESS = 'in_progress',    // 进行中
  COMPLETED = 'completed',        // 已完成
  FAILED = 'failed'               // 失败
}

/**
 * 迁移配置
 */
export interface MigrationConfig {
  clearLocalStorageAfterMigration?: boolean  // 迁移后是否清理LocalStorage
  backupBeforeMigration?: boolean            // 迁移前是否备份
  validateAfterMigration?: boolean           // 迁移后是否验证
}
